﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Net.Mail;
using Microsoft.VisualBasic;
using System.Threading;

namespace WindowsFormsApplication14
{
    public partial class endlessForm : Form
    {
        int answers = 0; //счётчик ответов
        int answerstrue = 0; //счётчик правильных ответов

        public string[,] log = new string[31, 4];
        public endlessForm()
        {
            InitializeComponent();
            if (settingsForm.Boolsheet == true)
            {
                answerLabel.ForeColor = Color.White; //видимые ответы, если в настройках стоит "да"
            }
            else
            {
                answerLabel.ForeColor = System.Drawing.ColorTranslator.FromHtml("#373737"); //невидимые ответы, если в настройках стоит "нет"
            }

        }
        
 

        private void endlessForm_Load(object sender, EventArgs e)
        {
            taskCombobox.SelectedIndex = 0; //при запуске формы выбрано задание А1

           
        }

        

        private void closeButton_Click(object sender, EventArgs e)
        {
             

            if (DialogResult.Yes == MessageBox.Show("Если вы закроете это окно, результаты будут утеряны!", "Закрытие", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation))
            {
                this.Hide();
        
            }

           

        }

        private void taskCombbobox_SelectedIndexChanged(object sender, EventArgs e)
        {
            Gen(); //ссылка на метод ниже
        }

        private void Gen() //метод, аналогичный событию переключения задания в редиме экзамена за исключением того, что задания генерируются каждый раз, чтобы обеспечить бесконечность режима
        {

            firstRadiobutton.Checked = false; //при выборе нового задания не выбран ни один вариант
            secondRadiobutton.Checked = false;
            thirdRadiobutton.Checked = false;
            fourthRadiobutton.Checked = false;

            firstRadiobutton.BackColor = System.Drawing.Color.Transparent; //при выборе нового задания не подсвечивается ни один вариант
            secondRadiobutton.BackColor = System.Drawing.Color.Transparent;
            thirdRadiobutton.BackColor = System.Drawing.Color.Transparent;
            fourthRadiobutton.BackColor = System.Drawing.Color.Transparent;
            Random rn = new Random();

            var crnt = int.Parse(taskCombobox.Text.Substring(1));
            var now = rn.Next(0, Sort.Bank[crnt].Count);

            taskCombbobox.Text = Sort.Bank[crnt][rn.Next(0, Sort.Bank[crnt].Count)].Tsk; 
            firstRadiobutton.Text = Sort.Bank[crnt][now].Vrnt1; //"бесконечная" генерация, далее аналогично
            secondRadiobutton.Text = Sort.Bank[crnt][now].Vrnt2; 
            thirdRadiobutton.Text = Sort.Bank[crnt][now].Vrnt3; 
            fourthRadiobutton.Text = Sort.Bank[crnt][now].Vrnt4; 
            if (log[crnt, 1] != null)
            {
                if (log[crnt, 1] == "1") { firstRadiobutton.Checked = true; firstRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be"); } //хайлайт выбранного ответа
                if (log[crnt, 1] == "2") { secondRadiobutton.Checked = true; secondRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be"); }
                if (log[crnt, 1] == "3") { thirdRadiobutton.Checked = true; thirdRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be"); }
                if (log[crnt, 1] == "4") { fourthRadiobutton.Checked = true; fourthRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be"); }
            }
            answerLabel.Text = Sort.Bank[crnt][now].Anwsr;
            log[crnt, 0] = Sort.Bank[crnt][now].Anwsr;
            log[crnt, 2] = Sort.Bank[crnt][now].Type;
            log[crnt, 3] = Sort.Bank[crnt][now].Nmb.ToString();
            
            answerButton.Enabled = true;
            firstRadiobutton.Enabled = true;
            secondRadiobutton.Enabled = true;
            thirdRadiobutton.Enabled = true;
            fourthRadiobutton.Enabled = true;
        }


        private void firstRadiobutton_CheckedChanged(object sender, EventArgs e)
        {
            firstRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be"); //аналогично режиму экзамена
            secondRadiobutton.BackColor = System.Drawing.Color.Transparent;
            thirdRadiobutton.BackColor = System.Drawing.Color.Transparent;
            fourthRadiobutton.BackColor = System.Drawing.Color.Transparent;
        }

        private void secondRadiobutton_CheckedChanged(object sender, EventArgs e)
        {
            firstRadiobutton.BackColor = System.Drawing.Color.Transparent;
            secondRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be");
            thirdRadiobutton.BackColor = System.Drawing.Color.Transparent;
            fourthRadiobutton.BackColor = System.Drawing.Color.Transparent;
        }

        private void thirdRadiobutton_CheckedChanged(object sender, EventArgs e)
        {
            firstRadiobutton.BackColor = System.Drawing.Color.Transparent;
            secondRadiobutton.BackColor = System.Drawing.Color.Transparent;
            thirdRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be");
            fourthRadiobutton.BackColor = System.Drawing.Color.Transparent;
        }

        private void fourthRadiobutton_CheckedChanged(object sender, EventArgs e)
        {
            firstRadiobutton.BackColor = System.Drawing.Color.Transparent;
            secondRadiobutton.BackColor = System.Drawing.Color.Transparent;
            thirdRadiobutton.BackColor = System.Drawing.Color.Transparent;
            fourthRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#0f93be");
        }


        private void answerButton_Click(object sender, EventArgs e)
        {


            if (answerLabel.Text == "1" && firstRadiobutton.Checked)
            {
                answers = answers + 1; //счётчик решённых заданий
                answerstrue = answerstrue + 1; //счётчик правильно решённых заданий
                firstRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80"); //подстветка правильного ответа
            }
            if (answerLabel.Text != "1" && firstRadiobutton.Checked)
            {

                firstRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#d45067"); //подсветка неправильного ответа
            }

            if (answerLabel.Text == "1" && (secondRadiobutton.Checked || thirdRadiobutton.Checked || fourthRadiobutton.Checked))
            {
                firstRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80"); //подсветка правильного ответа
                answers = answers + 1; //счётчик решённых заданий, далее аналогично
            }
            // далее аналогично
            if (answerLabel.Text == "2" && secondRadiobutton.Checked)
            {

                secondRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
                answerstrue = answerstrue + 1;
            }
            if (answerLabel.Text != "2" && secondRadiobutton.Checked)
            {

                secondRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#d45067");


            }

            if (answerLabel.Text == "2" && (firstRadiobutton.Checked || thirdRadiobutton.Checked || fourthRadiobutton.Checked))
            {
                secondRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
            }


            if (answerLabel.Text == "3" && thirdRadiobutton.Checked)
            {

                thirdRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
                answerstrue = answerstrue + 1;
            }
            if (answerLabel.Text != "3" && thirdRadiobutton.Checked)
            {

                thirdRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#d45067");

            }

            if (answerLabel.Text == "3" && (firstRadiobutton.Checked || secondRadiobutton.Checked || fourthRadiobutton.Checked))
            {

                thirdRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
            }


            if (answerLabel.Text == "4" && fourthRadiobutton.Checked)
            {

                fourthRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
                answerstrue = answerstrue + 1;
            }
            if (answerLabel.Text != "4" && fourthRadiobutton.Checked)
            {

                fourthRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#d45067");

            }

            if (answerLabel.Text == "4" && (firstRadiobutton.Checked || secondRadiobutton.Checked || thirdRadiobutton.Checked))
            {

                fourthRadiobutton.BackColor = System.Drawing.ColorTranslator.FromHtml("#19bb80");
                answers = answers + 1;
            }
            progressLabel.Text = "Решено " + answers + " номеров, из них " + answerstrue + " - правильно";


            answerButton.Enabled = false;
            firstRadiobutton.Enabled = false;
            secondRadiobutton.Enabled = false;
            thirdRadiobutton.Enabled = false;
            fourthRadiobutton.Enabled = false;
            Thread.Sleep(2000);
            Gen();
        }

            
                
 
           

           

        private void previousButton_Click(object sender, EventArgs e)
        {
            if (taskCombobox.SelectedIndex > 0)
            {
                taskCombobox.SelectedIndex--; //переход к предыдущему заданию
            }

            
            
        }

        private void nextButton_Click(object sender, EventArgs e)
        {

            if (taskCombobox.SelectedIndex < 26)
            {
                taskCombobox.SelectedIndex++; //переход к следующему заданию
            }
        }

       

        private void endlessForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult.No == MessageBox.Show("Если вы закроете это окно, результаты будут утеряны!", "Закрытие", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation))
            {

                e.Cancel = true;

            }

        
        }

      

        




    }
}